home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / il / ilMpNode.z / ilMpNode
Encoding:
Text File  |  2002-10-03  |  8.6 KB  |  265 lines

  1.  
  2.  
  3.  
  4. iiiillllMMMMppppNNNNooooddddeeee((((3333))))        IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll        iiiillllMMMMppppNNNNooooddddeeee((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiillllMMMMppppNNNNooooddddeeee - base class for MP dependency graph
  10.  
  11. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  12.      This is a base class
  13.  
  14. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  15.      #include <il/ilMpManager.h>
  16.  
  17. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  18.      ilMpNode is the base class defining a dependency graph for parallel
  19.      processing.  ilMpManager and ilMpRequest are both derived from this
  20.      class.  Those classes provide a generalized method to execute work in
  21.      parallel using a configurable number of threads created with sssspppprrrroooocccc().
  22.  
  23. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
  24.      SSSSttttaaaattttuuuussss mmmmeeeetttthhhhooooddddssss
  25.  
  26.           void setStatus(ilStatus sts)
  27.           void clearStatus()
  28.           ilStatus getStatus()
  29.  
  30.      OOOOtttthhhheeeerrrr mmmmeeeemmmmbbbbeeeerrrr qqqquuuueeeerrrriiiieeeessss
  31.  
  32.           int getDepth()
  33.           ilMpState getState()
  34.           ilMpNode* getParent()
  35.  
  36.      TTTTiiiimmmmiiiinnnngggg qqqquuuueeeerrrriiiieeeessss
  37.  
  38.           float getProcessingTime()
  39.           void addProcessingTime(float selfDelta, float parentDelta=0)
  40.           float getTimingWeight()
  41.           void setTimingWeight(float weight)
  42.  
  43.      AAAAbbbboooorrrrtttt ccccoooonnnnttttrrrroooollll
  44.  
  45.           int isAborting()
  46.           void inhibitAbort()
  47.  
  48.  
  49. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  50.      aaaaddddddddPPPPrrrroooocccceeeessssssssiiiinnnnggggTTTTiiiimmmmeeee(((())))
  51.  
  52.           void addProcessingTime(float selfDelta, float parentDelta=0)
  53.  
  54.  
  55.           This method accumulates more processing time for this node and
  56.           optionally our parent (time can be shifted from self to parent by
  57.           specifying _s_e_l_f_D_e_l_t_a = -_p_a_r_e_n_t_D_e_l_t_a).
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. iiiillllMMMMppppNNNNooooddddeeee((((3333))))        IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll        iiiillllMMMMppppNNNNooooddddeeee((((3333))))
  71.  
  72.  
  73.  
  74.      cccclllleeeeaaaarrrrSSSSttttaaaattttuuuussss(((())))
  75.  
  76.           void clearStatus()
  77.  
  78.  
  79.           This method clears the error status.
  80.  
  81.      ggggeeeettttDDDDeeeepppptttthhhh(((())))
  82.  
  83.           int getDepth()
  84.  
  85.  
  86.           This method returns the distance from the top of the node hierarchy
  87.           for this node, only requests are counted in the depth; managers are
  88.           effectively invisible. The depth is used to encourage depth first
  89.           building of the dependency graph.
  90.  
  91.      ggggeeeettttPPPPaaaarrrreeeennnntttt(((())))
  92.  
  93.           ilMpNode* getParent()
  94.  
  95.  
  96.           This method returns the parent for this node; ilMpRequest's always
  97.           have ilMpManager's as parents, ilMpManager's can have either type of
  98.           ilMpNode as parents.
  99.  
  100.      ggggeeeettttPPPPrrrroooocccceeeessssssssiiiinnnnggggTTTTiiiimmmmeeee(((())))
  101.  
  102.           float getProcessingTime()
  103.  
  104.  
  105.           This method returns the inclusive time to process this node and it's
  106.           children; for requests this includes read/compute/graphics process
  107.           times but not prepare/finish, for managers this includes the
  108.           completion callback time.
  109.  
  110.      ggggeeeettttSSSSttttaaaatttteeee(((())))
  111.  
  112.           ilMpState getState()
  113.  
  114.  
  115.           This method returns the current "state" for this node, possible
  116.           states are:
  117.  
  118.           _i_l_M_p_I_n_i_t        under construction
  119.  
  120.           _i_l_M_p_P_r_e_p        just constructed, waiting to be prepared
  121.  
  122.           _i_l_M_p_W_a_i_t        waiting for dependents to complete
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. iiiillllMMMMppppNNNNooooddddeeee((((3333))))        IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll        iiiillllMMMMppppNNNNooooddddeeee((((3333))))
  137.  
  138.  
  139.  
  140.           _i_l_M_p_R_e_a_d        waiting to read input data
  141.  
  142.           _i_l_M_p_G_r_a_p_h_i_c_s    ready to be rendered
  143.  
  144.           _i_l_M_p_C_o_m_p_u_t_e     ready to be computed
  145.  
  146.           _i_l_M_p_P_a_r_k_e_d      waiting on another request doing our work for us
  147.  
  148.           _i_l_M_p_F_i_n_i_s_h      ready to do finish processing
  149.  
  150.           _i_l_M_p_D_o_n_e        delete the request.
  151.  
  152.      ggggeeeettttSSSSttttaaaattttuuuussss(((())))
  153.  
  154.           ilStatus getStatus()
  155.  
  156.  
  157.           Returns the current status of this node.
  158.  
  159.      ggggeeeettttTTTTiiiimmmmiiiinnnnggggWWWWeeeeiiiigggghhhhtttt(((())))
  160.  
  161.           float getTimingWeight()
  162.  
  163.  
  164.           This method returns the weighting to apply to this node's processing
  165.           time when summing it into the parent node (default weight is 1).
  166.  
  167.      iiiinnnnhhhhiiiibbbbiiiittttAAAAbbbboooorrrrtttt(((())))
  168.  
  169.           int inhibitAbort()
  170.  
  171.  
  172.           This method prevents this node and all of its dependents from being
  173.           aborted when the aaaabbbboooorrrrtttt() method is called on a top level manager
  174.           that has this node as a direct or indirect dependent.
  175.  
  176.      iiiissssAAAAbbbboooorrrrttttiiiinnnngggg(((())))
  177.  
  178.           int isAborting()
  179.  
  180.  
  181.           This method returns true if this node is in the process of aborting.
  182.           Requests may want to check this periodically during long operations
  183.           to avoid wasted work.
  184.  
  185.      sssseeeettttSSSSttttaaaattttuuuussss(((())))
  186.  
  187.           void setStatus(ilStatus sts)
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. iiiillllMMMMppppNNNNooooddddeeee((((3333))))        IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll        iiiillllMMMMppppNNNNooooddddeeee((((3333))))
  203.  
  204.  
  205.  
  206.           This method sets the status of the current node. The first non-
  207.           ilOKAY status set will be latched; subsequest calls to this method
  208.           will be ignored, until cccclllleeeeaaaarrrrSSSSttttaaaattttuuuussss() is called.
  209.  
  210.      sssseeeettttTTTTiiiimmmmiiiinnnnggggWWWWeeeeiiiigggghhhhtttt(((())))
  211.  
  212.           void setTimingWeight(float weight)
  213.  
  214.  
  215.           This method sets the weighting to apply to this node's processing
  216.           time when summing it into the parent node (default weight is 1).
  217.  
  218. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  219.      ilMpManager(3), ilMpRequest(3)
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.